﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ABC_SA_WEB.WebServiceProveedores;

namespace ABC_SA_WEB
{
    public partial class Proveedores : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        { //PRUEBE
            if (!IsPostBack)
            {
                ddlCategoria.DataSource = Enum.GetValues(typeof(WebServiceProveedores.EnumCategoriaProveedor));
                ddlCategoria.DataBind();
                //string usuarioConsultado = Request.QueryString["user"];
                string usuarioConsultado = (string)(Session["usuario"]);

                if (usuarioConsultado != null)
                {
                    consultarDatos(usuarioConsultado);
                }
            }
        }

        protected void bttAgregar_Click(object sender, EventArgs e)
        {
            // Datos del Usuario
            string usuario = txtUsuario.Text;
            string contrasena = txtContrasena.Text;

            //Datos del Proveedor
            string contacto = txtContacto.Text;
            string telefono = txtTelefono.Text;
            string fax = txtFax.Text;
            string ubicacion = txtUbicacion.Text;
            string categoria = ddlCategoria.SelectedItem.ToString();

            //Llamado al web service
            wsProveedor mante = new wsProveedor();

            bool agregado = mante.agregarProveedor(usuario, contrasena, contacto, telefono, fax, ubicacion, categoria);
            if (agregado)
            {
                mostrarMensaje("Proveedor se agregó correctamente");
                lblIDProveedor.Text = mante.consultarProveedor(usuario).idProveedor.ToString();
            }
            else
            {
                mostrarMensaje("Proveedor no se guardó");
            }
        }

        protected void bttActualizar_Click(object sender, EventArgs e)
        {
            string usuario = txtUsuario.Text;
            string contacto = txtContacto.Text;
            string telefono = txtTelefono.Text;
            string fax = txtFax.Text;
            string ubicacion = txtUbicacion.Text;
            string categoria = ddlCategoria.SelectedItem.ToString();

            //Llamado a la capa de validación para agregar el cliente
            wsProveedor mante = new wsProveedor();

            if (mante.modificarProveedor(usuario, contacto, telefono, fax, ubicacion, categoria))
            {
                mostrarMensaje("Proveedor actualizado correctamente");
            }
            else {
                mostrarMensaje("No se pudo actualizar el Proveedor");
            }
        }  

        private void consultarDatos(string usuario) 
        {
            wsProveedor mante = new wsProveedor();
            Proveedor prove = mante.consultarProveedor(usuario);

            if (prove != null)
            {
                txtUsuario.Text = prove.UserName;
                if (txtUsuario.Text.CompareTo("") != 0) {
                    txtUsuario.Enabled = false;
                    txtContrasena.Enabled = false;
                    bttAgregar.Enabled = false;
                }

                txtContacto.Text = prove.contacto;
                txtTelefono.Text = prove.telefono;
                txtFax.Text = prove.fax;
                txtUbicacion.Text = prove.ubicacion;
            }
        }

        private void mostrarMensaje(string mensaje) 
        {
            string csname1 = "PopupScript";
            Type cstype = this.GetType();
            string cstext1 = Utilitario.mensajeJS(mensaje);
            ClientScript.RegisterStartupScript(cstype, csname1, cstext1);
        }

        private void resetFields() 
        {
            // Datos del Usuario
             txtUsuario.Text = string.Empty;
             txtContrasena.Text = string.Empty;

            //Datos del Proveedor
             txtContacto.Text = string.Empty;
             txtTelefono.Text = string.Empty;
             txtFax.Text = string.Empty;
             txtUbicacion.Text = string.Empty;
            //string categoria = "Hospedaje";
            ddlCategoria.SelectedIndex = 0;
        }
    }
} 